package secondBrush.doubles.summary;

import secondBrush.doubles.E08Leetcode19;

public class E11Leetcode {
    public static ListNode removeElements(ListNode head, int val) {
        ListNode dummy = new ListNode(-1, head);
        ListNode cur = dummy;
        ListNode slow = cur;
        ListNode fast = cur.next;
        while (fast != null) {
            if (fast.val == val) {
                slow.next = slow.next.next;
                fast = fast.next;
            }else {
                slow = fast;
                fast = fast.next;

            }



//            if (fast == null) {
//                return dummy.next;
//            }

        }
        return dummy.next;
    }

//    public ListNode removeElements(ListNode head, int val) {
//        ListNode dummy = new ListNode(-1, head);
//        ListNode cur = dummy;
//        while (cur.next != null) {
//            if (cur.next.val == val) {
//                cur.next = cur.next.next;
//            } else {
//                cur = cur.next;
//
//            }
//
//        }
//        return dummy.next;
//
//
//    }

    public static class ListNode {
    int val;
    ListNode next;
    ListNode() {}
    ListNode(int val) { this.val = val; }
    ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}

    public static void main(String[] args) {
        ListNode head = new ListNode(7, new ListNode(7, new ListNode(7, new ListNode(7, new ListNode(7, new ListNode(7))))));
        removeElements(head, 7);

    }

}
